<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>深拷贝</title>
</head>

<body>



    <script>
        // 深拷贝：把对象的多层的属性或方法拷贝给一个新的对象  层层拷贝
        // 1. 通过 JSON 序列化实现
        // 2. lodash库 实现
        // 3. 通过递归实现

        // 深拷贝实现方式一：JSON序列化（常用的方式）
        const obj = {
            name: '佩奇',
            family: {
                father: '猪爸爸',
                wife: {
                    name: "猪妈妈"
                }
            },
            hobby: ['跳泥坑', '唱歌']
        }


        console.log(JSON.stringify(obj));
        console.log(JSON.parse(JSON.stringify(obj)));
        let obj2 = JSON.parse(JSON.stringify(obj))
        // obj2.family.wife.name = "mary"
        console.log(obj);
        console.log(obj2);
        

        // 缺陷    数据类型不支持  function 识别不了  等


    </script>
</body>

</html>